#pragma once
#ifndef __SPORTS_MODE_MODE_H__
#define __SPORTS_MODE_MODE_H__
#include <sports_mode_vtbl.h>
extern const sports_mode_vtbl_t sports_mode_mode_run_1_vtbl;
extern const sports_mode_vtbl_t sports_mode_mode_ride_vtbl;
extern const sports_mode_vtbl_t sports_mode_mode_walk_vtbl;
extern const sports_mode_vtbl_t sports_mode_mode_swim_vtbl;
extern const sports_mode_vtbl_t sports_mode_mode_rope_vtbl;
extern const sports_mode_vtbl_t sports_mode_mode_swing_vtbl;

extern const sports_mode_vtbl_t sports_mode_mode_basketball_vtbl;
extern const sports_mode_vtbl_t sports_mode_mode_football_vtbl;

extern const sports_mode_vtbl_t sports_mode_mode_work_out_vtbl;
extern const sports_mode_vtbl_t sports_mode_mode_run_2_vtbl;

#ifdef SPORTS_MODE_HAS_GPS
extern const sports_mode_vtbl_t sports_mode_mode_gps_walk_vtbl;
extern const sports_mode_vtbl_t sports_mode_mode_gps_ride_vtbl;
extern const sports_mode_vtbl_t sports_mode_mode_gps_run_vtbl;
#endif //!< #ifdef SPORTS_MODE_HAS_GPS

/**
 * @brief 不同的运动应该额外增加不同的卡路里
 *
 * @param mode
 * @param calorie
 * @return uint32_t
 */
uint32_t sports_mode_get_extern_calorie(sports_mode_mode_t mode, uint32_t calorie);

/**
 * @brief 不同的运动应该额外增加不同的里程
 *
 * @param mode
 * @param distance
 * @return uint32_t
 */
uint32_t sports_mode_get_extern_distance(sports_mode_mode_t mode, uint32_t distance);
#endif //!<__SPORTS_MODE_MODE_H__

